Managing zero-width markers

ABSTRACT

Computer programs and computer-implemented methods implement techniques for displaying zero-width markers in an electronic document. An electronic document including content having a visual content is provided. The electronic document includes one or more markers having locations in the content, the markers not being represented in the content. Input specifying one or more locations in the electronic document is received. The presence of one or more markers associated with one or more locations in the specified locations is detected in response to the input. A visual representation of the detected markers is displayed. In preferred embodiments, the display of the visual representation does not alter the visual composition of the document.

BACKGROUND

[0001] This invention relates to the use of markers in desktop publishing and word processing applications.

[0002] Markers are frequently used in desktop publishing and word processing to represent an attribute or data—such as hyperlinks, indexing, notes, or extensible markup language (XML) tags—associated with content where the marker is found in a document. Markers are typically placed at desired locations in a document in the same fashion as characters are placed in a document (and, indeed, can be represented by characters in the document). Thus, for example, in an electronic document an instance of the word “Adobe” can have an associated index marker labeled Software Companies, representing an index entry for Software Companies with a reference to that instance of Adobe.

[0003] However, while markers thus provide users information, it is often desirable to avoid altering the display of the visual composition of the document, which would result from the insertion into a document of visible characters representing a marker. To that end, markers are often defined to have no width—called zero-width markers—such that they take up no “space” in the document and therefore do not affect the document's visual composition. Since such a marker takes up no space, it is essentially invisible to the user; the only indication to the user that the marker exists may be that the cursor or insertion point (the blinking vertical line where new characters appear as the user types) temporarily stays still as the user navigates through a region of the document that is populated with markers. As a result, when there are multiple markers in one location of a document, the cursor appears to stay in one place even when the user moves it (e.g., by using the cursor keys) through each marker. This can be confusing to a user who is unaware of the markers, who may wonder why the cursor is not moving. Even if the user is aware that zero-width markers are present in the document, it can still be hard to manipulate the markers—for example, to determine which marker is selected for modification or deletion.

SUMMARY

[0004] The invention provides methods and apparatus, including computer program apparatus for visually representing hidden markers in a document.

[0005] In general, in one aspect, the invention features computer-implemented methods and apparatus, including computer program apparatus, implementing techniques for displaying one or more detected markers in an electronic document. The techniques include providing an electronic document that includes content having a visual composition and one or more markers that have locations in the content. The markers are not represented in the visual composition of the content. The techniques also include receiving input specifying one or more locations in the electronic document; in response to the input, detecting the presence of one or more markers associated with one or more locations of the specified locations; and displaying a visual representation of the detected markers. The electronic document includes one or more markers having locations in the content. The markers are not represented in the content.

[0006] Particular implementations can include one or more of the following features. The input specifying one or more locations can include input directing that a cursor be placed at a location in the electronic document. The input specifying one or more locations can include input selecting a portion of the electronic document. The portion of the electronic document can include a word, sentence, or paragraph in the electronic document. The detected markers can include a plurality of markers having different locations in the selected portion. The visual representation of the detected markers can include one or more graphical elements representing the detected markers. Displaying the visual representation of the detected markers can include inserting the graphical elements representing the detected markers into the visual composition of the content at the locations of the detected markers, or separately displaying the graphical elements and the visual composition of the content.

[0007] Particular implementations can also include displaying a visual representation of data or attributes associated with the detected markers; receiving input navigating the cursor through the location of the detected markers, and in response to the input, displaying a change in a location of a cursor relative to the location of the one or more markers; hiding the visual representation of the detected markers when the cursor has navigated past the location of the detected markers; in response to detecting the presence of one or more markers, displaying a list of functions associated with one or more of the detected markers; and/or receiving an input selecting a function in the list of functions, and processing a marker according to the selected function. The input directing that a cursor be placed at a location in the electronic document can include input moving a mouse pointer to a location in the electronic document. The input directing that a cursor be placed at a location in the electronic document can include one or more cursor key strokes.

[0008] In general, in another aspect, the invention features computer-implemented methods and apparatus, including computer program apparatus, implementing techniques for displaying a plurality of detected markers in an electronic document. The techniques include providing an electronic document that includes content having a visual composition and a plurality of markers that have locations in the content. The plurality of markers are not represented in the visual composition of the content. The techniques also include receiving input specifying one or more locations in the electronic document; in response to the input, detecting the presence of a plurality of markers associated with a location of the specified locations; and displaying a visual representation of the detected markers.

[0009] Particular implementations can include one or more of the following features. The visual representation of the detected markers can include a plurality of graphical elements representing the detected markers. Displaying the visual representation of the detected markers can include inserting the plurality of graphical elements representing the detected markers into the visual composition of the content at the location of the detected markers. Displaying the visual representation of the detected markers can include separately displaying the plurality of graphical elements and the visual composition of the content.

[0010] Particular implementations can also include: displaying a visual representation of data or attributes associated with the detected markers; receiving input navigating the cursor through the location of the detected markers, and in response to the input, displaying a change in a location of a cursor relative to the location of the markers; and hiding the visual representation of the detected markers when the cursor has navigated past the location of the detected markers.

[0011] Advantages that can be seen in implementations of the invention can include one or more of the following. Automatically displaying a visual representation of a detected zero-width marker alerts a user to its presence in the document. Displaying a visual representation of a zero-width marker allows the user to easily select and modify (or edit) the marker. Multiple co-located markers are presented to the user in a serially accessible format. Other features, objects, and advantages of the invention will be apparent from the description and drawings, and from the claims.

DESCRIPTION OF DRAWINGS

[0012]FIGS. 1A-1B illustrate a passage of text including zero-width markers.

[0013]FIG. 2 illustrates a method 200 of managing zero-width markers in an electronic document.

[0014]FIG. 3 illustrates a tip window identifying the presence of a zero-width marker and what the marker represents.

[0015]FIG. 4 illustrates a method of detecting one or more zero-width markers.

[0016]FIG. 5 illustrates the tip window of FIG. 3 as the cursor is navigated to the right.

[0017]FIGS. 6A-6C illustrate the tip window of FIG. 3 as the cursor continues to navigate to the right.

[0018]FIG. 7 illustrates a tip window in which the user selects markers for modification.

[0019]FIG. 8 illustrates a tip window in which the user types new characters in between detected markers.

[0020] Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

[0021]FIG. 1A illustrates a passage of text 100 in an electronic document, as it might be displayed to a user of a conventional desktop publishing or word processing application. In such applications, all or a portion of the text can be associated with one or more markers representing attributes or information associated with the text. Markers are typically used to keep track of particular regions of text or other document content, and to associate logical attributes with them. For example, markers can be used in an electronic document for representing an index entry, a hyperlink, a note or comment, or a beginning or ending XML tag. The attributes and information referenced by a marker can be visible (e.g. Bolding) or not (e.g., a hyperlink or dictionary source marker). But where it is desired that the marker itself (as opposed to the attributes or information it references) not affect the visual composition of the document, the marker can be defined to have zero-width so that it will not be visible in the composed document.

[0022] Zero-width markers can be placed at desired locations in the document in the same fashion as regular characters (e.g., text characters) are placed in the document. Thus for example, each character and zero-width marker of text passage 100 can be assigned to a text index, which represents the position of each character (and marker) in the document. Referring to FIG. 1B, the letter “g” in the word “boxing” 120 is assigned to text index 15 and five zero-width markers, each represented by “0”, are assigned to text indices 17-21, respectively. A marker will thus have one or more associated position values that define its location in the document. These values can be adjusted so as to track a particular portion of text. Markers can also be used to do things other than mark text, such as to insert graphics (such as pictures) into the flow of the text. In non-text formats, markers can contain metadata such as uniform resource locators (URLs) or other workflow-system specifiers—e.g., a placed image in an Adobe® Illustrator® document can have a series of URLs and other attributes such as extensible metadata platform (XMP) packets. Also, in 3-D modeling applications, a wireframe element can have markers that contain, for example, textures, XMP packets, and database record pointers. The attributes and data referenced by markers can have associated properties and/or commands (e.g., properties of a Note in InCopy can be the comments referenced by the Note; an “untag” command can be used in connection with an XML tag to remove the tag). Because the markers have zero-width and take up no space, multiple zero-width markers can be associated to the same text—and the same location relative to the text—in a document, without affecting the document's visual composition.

[0023] In a typical desktop publishing program, the user navigates through the content of an electronic document (e.g., using the cursor keys), thereby causing a visible cursor to move sequentially from character to character (e.g., sequentially through the text indices as shown in FIG. 1B). If the document being viewed includes a zero-width marker or markers, when the user attempts to navigate the cursor through a region of content including the marker(s), the cursor will appear to stop moving while it navigates through the marker(s) in zero width increments. Thus, assuming passage of text 100 includes five zero-width markers associated with the word “wizards” 130 in location 110 (i.e., the space between the words “boxing” 120 and “wizards” 130), the user must invoke five cursor key commands to navigate through location 110 (i.e., through the markers located at text indices 17-21).

[0024]FIG. 2 illustrates a general method 200 for managing zero-width markers in an electronic document. This method, and other methods and systems described herein, can be implemented in conventional desktop publishing program such as Adobe InDesign®, available from Adobe Systems Incorporated of San Jose, Calif.

[0025] The method 200 begins by providing a document including content containing one or more zero-width markers for output to a display (step 210). Method 200 receives input specifying one or more locations in the content of the document (step 220). The input can direct the cursor to a location in the electronic document. The input can also select one or more portions of the electronic document (thereby specifying locations within the selected portions), which can include, for example, a paragraph, a line, or a word within the document. Method 200 detects the presence of the one or more zero-width markers (step 230), e.g., by recognizing an invisible character representing a marker within the specified locations of the content. Method 200 then generates and displays a visual representation of the detected markers (step 240), as will be discussed in more detail below.

[0026]FIG. 3 illustrates one example of a user interface for a program configured to implement the method of FIG. 2. In the example of FIG. 3, the word “wizards” 130 has five associated zero-width markers, including index entries for “Wizards” and “Mystics”, a hyperlink pointing to the URL “http://wizards”, a beginning XML tag using the name “FantasyBeing”, and an InCopy note that contains comments. Referring to FIG. 1B, the five zero-width markers associated with the word “wizards” 130 are assigned sequentially to text indices 17-21 at location 110. As shown in FIG. 3, upon detecting a zero-width marker (e.g., when the user navigates cursor 140 to location 110), the program creates a visual representation of the marker or markers, such as a tip window 310, alerting the user to the presence of the otherwise invisible markers. The program can also display information identifying the marker, here showing the marker type (i.e., the kind of attribute or data that the marker represents), as well as the particular attribute or data associated with the marker. Preferably, the display of the visual representation does not alter the visual composition of the document. Thus, for example, tip window 310 can be superimposed over the document content, at a point near the current location of cursor 140. As shown in FIG. 3, the first one of the five markers assigned to location 110 includes an Index type marker that associates the word “wizards” 130 to an Index entry for “Wizards” and the information is displayed in a field 320 of tip window 310.

[0027] To facilitate manipulation (e.g., modification) of markers, tip window 310 can also include a graphical element 330A representing the detected marker, and graphical elements 330B-E representing the other zero-width markers assigned next to the current location of the cursor (here, the four markers in text indices 18-21 assigned to the locations adjacent to the current position of cursor 140 at text index 17).

[0028]FIG. 4 shows one implementation of a method of detecting the total number of markers, if any, assigned to locations adjacent to a cursor position. Method 400 begins by receiving an input navigating a cursor to a location in the electronic document (step 405)—for example, a cursor 140 can be navigated to text index 17 as shown in FIG. 1B. Method 400 initializes counters F and B to zero (step 410). Counter F can be used to maintain a value representing a detected marker at the cursor position and the total number of markers positioned in text indices after the detected marker and counter B can be used to maintain a value representing the total number of markers positioned in text indices before a detected marker in the electronic document as explained in greater detail below. If the cursor is not positioned on a marker, then method 400 returns to step 405. If the cursor is positioned on a marker then counter F is incremented (step 420). Referring again to FIG. 1B, since the cursor 140 is positioned on text index 17, counter F is set with a value 1. Method 400 looks ahead to the next text index (step 425). As shown in FIG. 1B, the next text index ahead is text index 18. Method 400 determines if the next text index ahead contains a zero-width marker (step 430), and if the next text index has a zero width marker, counter F is incremented once again in step 420. In the example of FIG. 1B, since text index 18 contains a zero-width marker, counter F is incremented to a value of 2. Method 400 repeats steps 420-430 for the following text indices until all of the adjacent markers in the following text indices ahead of the detected marker have been counted. Thus in the example of FIG. 1B, method 400 repeats steps 420-430 through text indices 19-21, and counter F contains a value of 5.

[0029] Method 400 returns to text index 17 and looks back to the previous text index (step 435). Method 400 determines if the previous text index contains a zero-width marker (step 440), and if the previous text index contains a zero-width marker, counter B is incremented (step 445). Method 400 repeats steps 435-445 until all of the adjacent markers located in text indices before the detected marker have been counted. Referring again to FIG. 1B, since text index 16 contains a space (#), counter B remains at zero. Once all of the adjacent markers before and after the detected marker have been counted, counter F contains a value that represents the total number of markers after the detected marker (including the detected marker) and counter B represents the total number of markers before the detected marker (step 450).

[0030] Referring back to FIG. 3, each marker can be represented by a separate graphical element 330A-E (the total number of graphical elements correspond to the values contained in counters F and B), and the user can navigate through the markers using standard navigation methods, such as cursor keys. Thus, as shown in FIG. 3, a cursor 140, located at an area 110 in passage 100, can also be represented by a corresponding cursor 350 displayed in field 340 among graphical elements 330A-E. Referring to FIG. 5, when the user navigates cursor 140 to the right through the markers assigned to location 110, cursor 350 moves through graphical element 330A to a point to the left of graphical element 330B, here the second of the five markers assigned to location 110 representing an index entry for “Mystics” (displayed in field 320). Further navigation through the remaining markers assigned to location 110 yields similar results as shown in FIGS. 6A-6C. In this fashion, the user can continue to graphically navigate through the markers until cursor 350 has navigated through all of the graphical elements 330A-E and the cursor 140 meets up with regular characters in the composition. At this point, the tip window can be removed from the display.

[0031] The user can select an individual marker by selecting a corresponding graphical element using conventional techniques in the graphical display—for example, by using the shift key in combination with one or more arrow keys to provide extended selection in tip window 310. The user's selection can be graphically represented in tip window 310—for example, by highlighting the graphical elements 330D-E corresponding to the selected markers as shown in FIG. 7. The user can then edit (e.g., delete, cut, paste, copy and the like) or otherwise process the selected markers—for example, by selecting a delete key to remove the markers or by selecting a return key to invoke the properties of the markers. In FIG. 7, the selected markers are the beginning XML tag “<FantasyBeings>” and the InCopy note as displayed in field 320 of the tip window.

[0032] The user can act upon the graphical elements in the tip window in other ways as well, in much the same way that other characters are acted upon in the document. For example, referring to FIG. 8, the user can navigate cursor 350 to the point between graphical elements 330C and 330D in field 340 and type in new characters represented by the word “blue” 800. As a result, the typed characters—that is, the word “blue” 800—now appears in text passage 100 at the location of cursor 140, in between the locations of the third and fourth markers, represented by graphical elements 330C and 330D, respectively. The new characters entered between the markers can be displayed in field 320 of tip window 310.

[0033] In one implementation, the graphical display of zero-width markers can take the form of a Marker Manager Panel, performing functions similar to the tip window 310 described above, and further providing access to additional marker-related functionality. Thus, for example, when the user navigates the cursor to a location assigned an index marker, a popup menu can appear that provides the user with commands that can be used with that particular index marker (e.g., a command to change a reference to that particular index can appear in the menu). Plugins that use special-purposed zero-width markers along with functions to work with them can also make themselves known to the manager. When the cursor navigates to a marker, the Marker Manager makes a standard call to the plugin and gets available commands (or functions) for the popup menu to be used in connection with the marker. Optionally, when the Marker Manager is open, context sensitive commands can be available to the user.

[0034] The Marker Manager window can be configured to appear only when the cursor navigates through a location in the document that is associated with one or more zero-width markers. Alternatively, the Marker Manager can be permanently displayed in the user interface (or displayed in response to user input) as a conventional window or other graphical element that includes relevant marker information for a marker when the cursor navigates to a location associated with the marker.

[0035] The invention can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. Apparatus of the invention can be implemented in a computer program product tangibly embodied in a machine-readable storage device for execution by a programmable processor; and method steps of the invention can be performed by a programmable processor executing a program of instructions to perform functions of the invention by operating on input data and generating output. The invention can be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. Each computer program can be implemented in a high-level procedural or object-oriented programming language, or in assembly or machine language if desired; and in any case, the language can be a compiled or interpreted language. Suitable processors include, by way of example, both general and special purpose microprocessors. Generally, a processor will receive instructions and data from a read-only memory and/or a random access memory. The essential elements of a computer are a processor for executing instructions and a memory. Generally, a computer will include one or more mass storage devices for storing data files; such devices include magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and optical disks. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM disks. Any of the foregoing can be supplemented by, or incorporated in, ASICs (application-specific integrated circuits).

[0036] A number of embodiments of the invention have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. For example, the tip window can be a dialog panel, or other conventional graphical display. Moreover, the tip window can appear to the user on the display in a fixed position or any other position (e.g., user defined) in the display of the electronic document, and not necessarily in relation to the position of the cursor. The tip window can appear when a mouse pointer appears over a location assigned with one or more zero-width markers. The Marker Manager Panel can optionally be displayed to the user when the cursor is not at a location in document containing a zero-width marker. Accordingly, other embodiments are within the scope of the following claims. 

What is claimed is:
 1. A computer-implemented method, comprising: providing an electronic document including content having a visual composition, the electronic document including one or more markers having locations in the content, the markers not being represented in the visual composition of the content; receiving input specifying one or more locations in the electronic document; in response to the input, detecting the presence of one or more markers associated with one or more locations of the specified locations; and displaying a visual representation of the detected markers.
 2. The method of claim 1, wherein: the input specifying one or more locations includes input directing that a cursor be placed at a location in the electronic document.
 3. The method of claim 1, wherein: the input specifying one or more locations includes input selecting a portion of the electronic document.
 4. The method of claim 3, wherein: the portion of the electronic document comprises a word, sentence, or paragraph in the electronic document.
 5. The method of claim 3, wherein: the detected markers include a plurality of markers having different locations in the selected portion.
 6. The method of claim 1, wherein: the visual representation of the detect ed markers includes one or more graphical elements representing the detected markers.
 7. The method of claim 6, wherein: displaying the visual representation of the detected markers includes inserting the graphical elements representing the detected markers into the visual composition of the content at the locations of the detected markers.
 8. The method of claim 6, wherein: displaying the visual representation of the detected markers includes separately displaying the graphical elements and the visual composition of the content.
 9. The method of claim 1, further comprising: displaying a visual representation of data or attributes associated with the detected markers.
 10. The method of claim 1, further comprising: receiving input navigating the cursor through the location of the detected markers; and in response to the input, displaying a change in a location of a cursor relative to the location of the one or more markers.
 11. The method of claim 10, further comprising: hiding the visual representation of the detected markers when the cursor has navigated past the location of the detected markers.
 12. The method of claim 1, further comprising: in response to detecting the presence of one or more markers, displaying a list of functions associated with one or more of the detected markers.
 13. The method of claim 10, further comprising: receiving an input selecting a function in the list of functions; and processing a marker according to the selected function.
 14. The method of claim 2, wherein: the input directing that a cursor be placed at a location in the electronic document includes input moving a mouse pointer to a location in the electronic document.
 15. The method of claim 2, wherein: the input directing that a cursor be placed at a location in the electronic document includes one or more cursor key strokes.
 16. A computer-implemented method, comprising: providing an electronic document including content having a visual composition, the electronic document including a plurality of markers having locations in the content, the plurality of markers not being represented in the visual composition of the content; receiving input specifying one or more locations in the electronic document; in response to the input, detecting the presence of a plurality of markers associated with a location of the specified locations; and displaying a visual representation of the detected markers.
 17. The method of claim 16, wherein: the visual representation of the detected markers includes a plurality of graphical elements representing the detected markers.
 18. The method of claim 17, wherein: displaying the visual representation of the detected markers includes inserting the plurality of graphical elements representing the detected markers into the visual composition of the content at the location of the detected markers.
 19. The method of claim 17, wherein: displaying the visual representation of the detected markers includes separately displaying the plurality of graphical elements and the visual composition of the content.
 20. The method of claim 16, further comprising: displaying a visual representation of data or attributes associated with the detected markers.
 21. The method of claim 16, further comprising: receiving input navigating the cursor through the location of the detected markers; and in response to the input, displaying a change in a location of a cursor relative to the location of the markers.
 22. The method of claim 21, further comprising: hiding the visual representation of the detected markers when the cursor has navigated past the location of the detected markers.
 23. A computer product, tangibly stored on a computer-readable medium, the product comprising instructions operable to cause a programmable processor to: provide an electronic document including content having a visual composition, the electronic document including one or more markers having locations in the content, the markers not being represented in the visual composition of the content; receive input specifying one or more locations in the electronic document; in response to the input, detect the presence of one or more markers associated with one or more locations of the specified locations; and display a visual representation of the detected markers.
 24. The computer program product of claim 23, wherein: the input specifying one or more locations includes input directing that a cursor be placed at a location in the electronic document.
 25. The computer program product of claim 23, wherein: the input specifying one or more locations includes input selecting a portion of the electronic document.
 26. The computer program product of claim 25, wherein: the portion of the electronic document comprises a word, sentence, or paragraph in the electronic document.
 27. The computer program product of claim 25, wherein: the detected markers include a plurality of markers having different locations in the selected portion.
 28. The computer program product of claim 23, wherein: the visual representation of the detected markers includes one or more graphical elements representing the detected markers.
 29. The computer program product of claim 28, wherein the instructions operable to cause a programmable processor to display a visual representation include instructions operable to cause a programmable processor to: insert the graphical elements representing the detected markers into the visual composition of the content at the locations of the detected markers.
 30. The computer program product of claim 28, wherein the instructions operable to cause a programmable processor to display a visual representation include instructions operable to cause a programmable processor to: separately display the graphical elements and the visual composition of the content.
 31. The computer program product of claim 23, wherein the computer program product further comprises instructions operable to cause a programmable processor to: display a visual representation of data or attributes associated with the detected markers.
 32. The computer program product of claim 23, wherein the computer program product further comprises instructions operable to cause a programmable processor to: receive input navigating the cursor through the location of the detected markers; and in response to the input, display a change in a location of a cursor relative to the location of the one or more markers.
 33. The computer program product of claim 32, wherein the computer program product further comprises instructions operable to cause a programmable processor to: hide the visual representation of the detected markers when the cursor has navigated past the location of the detected markers.
 34. The computer program product of claim 23, wherein the computer program product further comprises instructions operable to cause a programmable processor to: in response to detecting the presence of one or more markers, display a list of functions associated with one or more of the detected markers.
 35. The computer program product of claim 32, wherein the computer program product further comprises instructions operable to cause a programmable processor to: receive an input selecting a function in the list of functions; and process a marker according to the selected function.
 36. The computer program product of claim 24, wherein: the input directing that a cursor be placed at a location in the electronic document includes input moving a mouse pointer to a location in the electronic document.
 37. The computer program product of claim 24, wherein: the input directing that a cursor be placed at a location in the electronic document includes input moving the cursor.
 38. A computer product, tangibly stored on a computer-readable medium, the product comprising instructions operable to cause a programmable processor to: provide an electronic document including content having a visual composition, the electronic document including a plurality of markers having locations in the content, the plurality of markers not being represented in the visual composition of the content; receive input specifying one or more locations in the electronic document; in response to the input, detect the presence of a plurality of markers associated with a location of the specified locations; and display a visual representation of the detected markers.
 39. The computer program product of claim 38, wherein: the visual representation of the detected markers includes a plurality of graphical elements representing the detected markers.
 40. The computer program product of claim 39, wherein the instructions operable to cause a programmable processor to display the visual representation include instructions operable to cause a programmable processor to: insert the plurality of graphical elements representing the detected markers into the visual composition of the content at the location of the detected markers.
 41. The computer program product of claim 39, wherein the instructions operable to cause a programmable processor to display the visual representation include instructions operable to cause a programmable processor to: separately display the graphical elements and the visual composition of the content.
 42. The computer program product of claim 38, wherein the computer program product further comprises instructions operable to cause a programmable processor to: display a visual representation of data or attributes associated with the detected markers.
 43. The computer program product of claim 38, wherein the computer program product further comprises instructions operable to cause a programmable processor to: receive input navigating the cursor through the location of the detected markers; and in response to the input, display a change in a location of a cursor relative to the location of the markers.
 44. The computer program product of claim 43, wherein the computer program product further comprises instructions operable to cause a programmable processor to: hide the visual representation of the detected markers when the cursor has navigated past the location of the detected markers. 